#define  _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{
	int i = 1;//初始化
	while (i <= 10)//判断
	{
		printf("%d ", i);
		if (i == 10)
			printf("\n");
		i++;//调整
	}

	int n = 0;
	scanf("%d", &n);
	while (n)
	{
		printf("%d ", n % 10);
		n = n / 10;
		if (n == 0)
			printf("\n");
	}

	int m = 0;
	for (m=1;m<=10;m++)//初始化;判断;调整
	{
		printf("%d ", m);
		if (m == 10)
			printf("\n");
	}

	int a = 0;
	int sum = 0;
	for (a = 1;a <= 100;a++)
	{
		if (a % 3 == 0)
			sum += a;
	}
	printf("%d\n", sum);

	int a1 = 0;
	int sum1 = 0;
	for (a1 = 3;a1 <= 100;a1 += 3)
	{
		sum1 += a1;
	}
	printf("%d\n", sum1);

	int b = 1;
	do
	{
		printf("%d ", b);
		b++;
		if (b == 11)
			printf("\n");
	} while (b <= 10);

	int c = 0;
	scanf("%d",&c);
	int count = 0;
	do
	{
		count++;
		c = c / 10;
	} 
	while (c);
	printf("%d\n", count);

	int d = 1;
	while (d <= 10)
	{
		if (d == 5)
		{
			printf("\n");
			break;
		}
		printf("%d ", d);
		d++;
	}

	int f = 0;
	while (f < 10)
	{
		f++;
		if (f == 5)
			continue;
		printf("%d ", f);
		if (f == 10)
			printf("\n");
	}

	int g = 0;
	for (g=1;g<=10;g++)//初始化;判断;调整
	{
		if (g == 5)
			continue;//调整语句不在continue后面，不会跳过调整
		printf("%d ", g);
		if (g == 10)
			printf("\n");
	}

	int e = 1;
	while (e <= 10)
	{
		if (e == 5)
		{
			continue;//跳过了调整进入了死循环
		}
		printf("%d ", e);
		e++;
	}
	return 0;
}

//1

//break --> 循环、switch
//continue --> 循环
//break一退退出的是身处最内最近的个循环(一个) (continue结束也是最内最近的,一次次循环)
//continue结束的是此次循环(一次)的在它之后的后部分
//int count = 0;
//int main()
//{
//	int i = 0;
//	for (i = 0;i < 10;i++)
//	{
//		int j = 0;
//		for (j = 0;j < 10;j++)
//		{
//			if (j == 5)
//				continue;//90次
//	          //break;//50次
//			printf("hehe ");
//			count++;
//		}
//	}
//	printf("\n");
//	printf("%d\n", count);
//	return 0;
//}

//2

//int main()
//{
//	int i = 0;
//	for (i = 0;i < 2;i++)
//	{
//		printf("hehe\n");
//	}
//	printf("%d\n", i);
//	int j = 0;
//	for (j = 0;j < 2;j++)
//	{
//		break;//break这种退出结束循环的不是再上去++后从结束口出，而是直接从这里出了
//	}
//	printf("%d\n", j);//j = 0
//	int a = 0;
//	for (a = 0;a < 1;a++)
//	{
//		continue;//continue是在这次跳过它后面的内容不读然后完成上去++然后去看下一次
//	}
//	printf("a = %d\n", a);
//	return 0;
//}

//3 do while 与 while

// int main()
// {
// 	int a = 0;
// 	scanf("%d", &a);
// 	int arr[7] = { 100,50,20,10,5,2,1 };
// 	do 
// 	{
// 		if (a - arr[0] >= 0)//do必执行地进来判断？显得do的必累赘了干脆直接判断，而且这样写了之后进来的判断的循环体里循环跟着外面的判断反复累赘判断，本来外面一个while判断就能解决的事
// 			//do必执行是用在整个循环中第一次无需判断直接执行的循环
// 		{
// 			printf("%d\n", arr[0]);
// 			a -= arr[0];
// 		}
// 	} 
// 	while (a - arr[0] >= 0);//while()是同意进来条件
// 	return 0;
// }
//
////读钞票
// int main()
// {
// 	int a = 0;
// 	scanf("%d", &a);
// 	int arr[7] = { 100,50,20,10,5,2,1 };
// 	int i = 0;
// 	for (i = 0;i < 7;i++)
// 	{
// 		int count = 0;
// 		while (a - arr[i] >= 0)
// 		{
// 			a -= arr[i];
// 			count++;
// 		}
// 		printf("%d nota(s) de R$ %d,00\n",count,arr[i]);
// 	}
// 	return 0;
// }

//4

//int main()
//{
//	int n;
//	scanf("%d", &n);
//	while (n--) // --> 执行n次循环
//	{
//
//	}
//	return 0;
//}

//int main()
//{
//	int i = -1;
//	while (i)//非零即真
//	{
//		printf("hehe\n");
//	}
//	return 0;
//}

//5 做完再判断此次能否进入循环的模式与还是正常的第一次先做必做然后再正常的先判断再做do while 都能写成有，do while 只是结构这样，判断的在下面

//int main()
//{
//	int a;
//	scanf("%d", &a);
//	do
//		scanf("%d", &a);//与正常的写在上面的先执行代码不同，它是在循环体里
//	while (a);
//	return 0;
//}